
# !/usr/bin/python
# -*- coding:utf-8 -*-
import logging
import os
import time
from logging import handlers
from student_test.config import BASE_DIR

def log():
    os.makedirs("{}\logs".format(BASE_DIR), exist_ok=True)
    log = logging.getLogger("{}logs/et.log".format(BASE_DIR))
    format_str = logging.Formatter('%(asctime)s [%(module)s] %(levelname)s [%(lineno)d] %(message)s', '%Y-%m-%d %H:%M:%S')
    # 按天录入日志，最多保存7天的日志
    handler = handlers.TimedRotatingFileHandler(filename=("{}\logs/et.log".format(BASE_DIR)), when='D', backupCount=7, encoding='utf-8')
    log.addHandler(handler)
    log.setLevel(logging.INFO)
    handler.setFormatter(format_str)
    return log
def log():
        """记录指定格式日志"""
        # 1. 创建日志器对象
        logger = logging.getLogger()
        # 设置日志打印级别
        logger.setLevel(logging.INFO)
        #logging.DEBUG调试级别  logging.INFO 信息级别  3. logging.WARNING 警告级别 4. logging.ERROR 错误级别 5. logging.CRITICAL 严重错误级别
        # 创建输出到控制台 处理对象
        st = logging.StreamHandler()
        # 创建文件存在日志的文件加
        os.makedirs("{}\logs".format(BASE_DIR),exist_ok=True)
        log_path = BASE_DIR + os.sep + "logs" + os.sep + "student_{}.log".format(time.strftime("%y%m%d"))
        # 创建输出到日志文件处理对象
        fh = logging.handlers.TimedRotatingFileHandler(filename=log_path,
                                                       when='midnight',
                                                       interval=3,
                                                       backupCount=3,
                                                       encoding='utf-8')
        # 创建日志信息格式
        fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
        formatter=logging.Formatter(fmt)
        # 日志信息格式设置给控制台处理器
        st.setFormatter(formatter)
        # 日志信息格式设置给日志文件处理器
        fh.setFormatter(formatter)
        # 日志器对象田炯控制台处理器
        logger.addHandler(st)
        # 日治其对象添加日志文件处理器
        logger.addHandler(fh)
        # while True:
        #     logger.info("一个错误")
        #     time.sleep(1)


if __name__=="__main__":
    logging.info("一个错误")
    logging.info("一个错误")
    logging.info("一个错误")
    logging.info("一个错误")
    write_log